148

Blockchain Technology

shows the different version types. The version numbers can be any of the

following:

• Previous block’s hash: It is a 32-byte field. The value in this field, as the

name suggests, is the hash value of the previous block’s header (Tabora,

2019). This acts as a pointer to the previous block in the blockchain. One of

the interesting features of this field is that it cannot be changed or manipu­

lated without changing the details of the previous blocks. If an intruder

wishes to change the previous block’s header in a large blockchain, he or

she must change every previous block prior to the one being modified. This

is known as the “Avalanche Effect”. The cost involved in altering so many

blocks is very high, as it would require massive amounts of computing

power to calculate the hash rate. This is the key feature that makes the

blockchain secure and resistant to any tampering. SHA-256 is the hashing

algorithm used to create a hash of the previous block.

• Merkle hash or Merkle root: The size of the field is 32 bytes. The content

of this field is the hash value of the blockchain’s Merkle root. The hashing

algorithm utilized is the SHA-256. The Merkle root of a block is calcu­

lated using the hash values corresponding to each transaction that has been

included in that block. It consists of all the transaction IDs of that block.

The placement or order of the transaction IDs must satisfy the consensus

rules.

• Timestamp: This is a field that can accommodate data of 4 bytes. The time

specified in this field is a measure of the UNIX epoch time. The value of the

timestamp can be defined as the elapsed number of seconds since January

1970. The timer starts when the miner begins the hashing process of the

header. A timestamp is said to be valid if it is found to be greater than the

median time of the preceding 11 blocks.

• Difficulty level or Difficulty target: This field is also referred to as “bits”

and has a size of 4 bytes. The encoded bits act as a threshold value, which

must be equal to or greater than the hash value of the block’s header. The

TABLE 9.1

Version Types

Version Type

Description

Version 1

This was the first version that was used when blockchain came into existence. It is

known as the genesis block and was created in January 2009.

Version 2

Corresponds to bitcoin core 0.7.0, used the User Activated Soft Fork (UASF) and was

created in September 2012. It has been described in BIP34.

Version 3

Corresponds to bitcoin core 0.10.0, used UASF and was created in February 2015. It

has been described in BIP66.

Version 4

Corresponds to bitcoin core 0.11.2, used UASF and was created in November 2015. It

has been described in BIP65.